Mobile device manufacturers develop mobile devices with various operating systems and/or various versions of the same operating systems. This has led to flooding of the market with different kinds of mobile devices, manufactured by different vendors, and with different software features and hardware components. Mobile applications, while running on different devices, may behave differently due to variations in the hardware or operating system components. Testing a mobile application typically involves monitoring, troubleshooting, verification, and validation of hardware and software components of the mobile devices on which the mobile application is run.
Moreover, mobile application test execution often takes a long time to complete because the tests are executed in different environments, thereby causing the application developers to create complex tear down procedures. Such tear down procedures are lengthy and often lead to unpredictable failures, thereby leading to lack of trust in such tests and consequently undermining the entire test automation effort. Thus, multiple quality assurance efforts are undertaken which results in a time-consuming and costly development process.